/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author dvalle
 */
package beans;
import java.sql.*;

public class Dao {
    public Connection conexion;
    public final static String userDb = "root";
    public final static String passDb = "toor";
    private int sesionId;


    //Conectar a la Base de datos
    public void conectar() throws SQLException,ClassNotFoundException{
         Class.forName("com.mysql.jdbc.Driver");
         conexion=DriverManager.getConnection("jdbc:mysql://localhost:3306/ayd2",userDb, passDb);
    }
    //Desconectar a la Base de datos
    public void desconectar() throws SQLException, ClassNotFoundException{
        conexion.close();
    }

    //Metodo para consultar si un email y contraseñan pertenecen a una cuenta registrada
    public boolean isAcountExists(String usuario, String password) throws SQLException{
        sesionId = -1;
        CallableStatement cs = conexion.prepareCall("{call sp_login(?,?,?,?)}");
        cs.setString(1, usuario);
        cs.setString(2, password);
        cs.registerOutParameter(3, Types.BIT);
        cs.registerOutParameter(4, Types.INTEGER);
        cs.execute();
        
        if (cs.getBoolean(3))
        {
            sesionId = cs.getInt(4);
            return true;
        }
        else
            return false;
    }
    
    public int getSesionId()
    {
        return sesionId;
    }

    //Metodo para consultar si el usuario recibido ya esta registrado
    /*public boolean isUserRegistered(String usuario) throws SQLException{
        String sql = "SELECT * FROM usuario WHERE idUsuario='"+usuario+"'";
        PreparedStatement ps = conexion.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();

        return rs.next();
    }*/

    //Metodo para registrar una cuenta
    public String registerUser(String nombre, String password, String email) throws SQLException {
        CallableStatement cs = conexion.prepareCall("{call sp_register(?,?,?,?)}");
        cs.setString(1, email);
        cs.setString(2, password);
        cs.setString(3, nombre);
        cs.registerOutParameter(4, Types.VARCHAR);
        cs.execute();
        
        return cs.getString(4);
    }



}